home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / data / ysuty2 / ysuty2.h < prev    next >
Text File  |  1993-07-08  |  8KB  |  252 lines

  1. /* Graphic User Interface structures */
  2. struct button
  3. {
  4.     int now;      /* Current On/Off condition */
  5.     int prev;     /* Previous On/Off condition */
  6. };
  7.  
  8. struct buttonSwitch
  9. {
  10.     int now;      /* Current On/Off condition */
  11.     int prev;     /* Previous On/Off condition */
  12.     int pmos;     /* Previous Mouse Button */
  13. };
  14.  
  15. struct pulldown
  16. {
  17.     char *(*arg); /* 選択肢 */
  18.     int now,prev; /* Current,Previous On/Off condition */
  19.     int x,y;      /* プルダウンされるメニューの表示位置 */
  20.     int fx,fy;    /* フォントサイズ */
  21. };
  22.  
  23. struct menu
  24. {
  25.     char *(*arg); /* 選択肢 */
  26.     int cmd,prev; /* Current,Previous On/Off condition */
  27.     int fx,fy;    /* Font Size */
  28. };
  29.  
  30. struct dialogue
  31. {
  32.     char *(*arg);
  33.     char *sw;     /* sw[n]==1:n番が選択されている ==0:いない */
  34.     int now,prev; /* Current Point, Previous Point */
  35.     int pmos,pclk;/* Previous Mouse Button,Previous Mouse Released Clock */
  36.     int prechg;   /* 直前に変化があった番号 */
  37.     int dspn;     /* 画面に表示する選択肢の個数 */
  38.     int fx,fy;    /* Font Size */
  39.     int single;   /* 単一項目の選択 0:複数の選択 */
  40. };
  41.  
  42. struct scrollbar
  43. {
  44.     int argc;     /* 全体の大きさ */
  45.     int dspn;     /* そのうちで画面に出ている大きさ */
  46.     int ptr;
  47. };
  48.  
  49. struct item
  50. {
  51.     int id,x,y,lx,ly;  /* 種類,表示位置,幅 */
  52.     struct item *prev; /* item list中で一つ前のitemへのポインタ */
  53.     struct item *next; /* item list中で一つ後のitemへのポインタ */
  54.     union
  55.     {
  56.         struct button bt;
  57.         struct buttonSwitch sw;
  58.         struct pulldown pd;
  59.         struct menu mn;
  60.         struct dialogue dl;
  61.         struct scrollbar sc;
  62.     } detail;
  63. };
  64.  
  65.  
  66. struct gc
  67. {
  68.     int smod0;            /* Screen Mode Page 0 */
  69.     int smod1;              /* Screen Mode Page 1 */
  70.     int font12;           /* 12Dot Font Flag */
  71.     int fx,fy;            /* Font Size */
  72.     int wpage;            /* Write Page */
  73.     int prior,disp;       /* Priority Page, Display Page */
  74.     int wmode;            /* Write Mode */    
  75.     int color;            /* Pen Color */
  76.     int vx1,vy1,vx2,vy2;  /* View Port */
  77. };
  78.  
  79.  
  80. typedef struct gc GC;
  81. typedef struct item ITEM;
  82.  
  83. #define BACKGROUND 0
  84. #define BUTTON 1
  85. #define SWITCH 2
  86. #define PULLDOWN 3
  87. #define MENU 4
  88. #define DIALOGUE 5
  89. #define LNGBAR 6
  90. #define LATBAR 7
  91.  
  92. #define DBLCLIC 250
  93.  
  94. #define BACKGRAY (20*1024+20*32+20)
  95. #define UPWHITE 32767
  96. #define DOWNGRAY (8*1024+8*32+8)
  97.  
  98. #define PSET   0
  99. #define PRESET 1
  100. #define OR     2
  101. #define AND    3
  102. #define XOR    4
  103. #define NOT    5
  104. #define MATTE  6
  105. #define PASTEL 7
  106. #define OPAQUE 9
  107.  
  108.  
  109. /* CHARUTY.C */
  110. int   YSC_arguments(char *line,char *argv[],int n);
  111. void  YSC_itoa(char *a,int i,int n);
  112. char *YSC_lineHead(char *line);
  113. char *YSC_lineTail(char *line);
  114. void  YSC_swapInt(int *a,int *b);
  115. void  YSC_swapChar(char *a,char *b);
  116. void  YSC_swapPointer(void **a,void **b);
  117.  
  118. /* CHKDRV.C */
  119. int   YSC_checkDrive(unsigned drv);
  120.  
  121. /* FILEUTY.C */
  122. void  YSC_changeExt(char *fname,char *ext);
  123. int   YSC_fsize(FILE *fp);
  124. int   YSC_getDosFiles(char *fn[],char *sd,int mx,char *pth,char *wc,char *bf);
  125. void  YSC_makeFullPath(char *ful,unsigned drv,char *path,char *fname);
  126. void  YSC_putExt(char *fname,char *ext);
  127. void  YSC_sortFiles(char *fname[],char *sbdir,int fs);
  128.  
  129. /* EUPLIB.C */
  130. int YEU_abort();
  131. int YEU_pause();
  132. int YEU_percent(char *eupdat);
  133. int YEU_play(char *eupdat,int loop);
  134. int YEU_playFlag();
  135. int YEU_prepare(char *eupdat,int loadFMB,int loadFMB);
  136. int YEU_restart();
  137.  
  138. /* EGBUTY.C */
  139. void YGB_box(char *work,int x0,int y0,int x1,int y1);
  140. void YGB_boxFul(char *work,int x0,int y0,int x1,int y1);
  141. void YGB_circle(char *work,int x,int y,int r);
  142. void YGB_cls(char *work);
  143. void YGB_color(char *work,int cnum);
  144. void YGB_fontSize(char *work,int fx,int fy);
  145. void YGB_frame(char *work,int *para);
  146. int  YGB_getColor(char *work,int x,int y);
  147. void YGB_getPattern(char *work,char *dat,int x1,int y1,int x2,int y2);
  148. void YGB_init(char *work,int s1,int s2);
  149. void YGB_initNoCls(char *work,int s0,int s1);
  150. void YGB_line(char *work,int x0,int y0,int x1,int y1);
  151. void YGB_linec(char *work,int *para);
  152. void YGB_lined(char *work,int *para);
  153. void YGB_polygon(char *work,int *para);
  154. void YGB_popCondition(char *work,GC *stk);
  155. void YGB_print(char *work,int x,int y,char *para);
  156. void YGB_pset(char *work,int x,int y);
  157. GC  *YGB_pushCondition();
  158. void YGB_putPattern(char *work,char *dat,int x1,int y1,int x2,int y2);
  159. void YGB_use12dotFont();
  160. void YGB_view(char *work,int x0,int y0,int x1,int y1);
  161. void YGB_writeMode(char *work,int mod);
  162. void YGB_writePage(char *work,int pag);
  163.  
  164.  
  165.  
  166. /* MENUUTY.C */
  167. void  YGU_dispVector(char *EGB_work,int x,int y,int siz,int ang);
  168. void  YGU_menuBox(char *EGB_work,int x1,int y1,int x2,int y2);
  169. void  YGU_popScreenBlock(char *EGB_work,char *pushBuf);
  170.  
  171. char *YGU_pushScreenBlock(char *EGB_work,int x1,int y1,int lx,int ly);
  172. int   YGU_screenMode(char *EGB_work);
  173.  
  174.  
  175.  
  176.  
  177. /* GUI Libraries */
  178. #define YGU_getScrollBarPointer(bar) ((*bar).detail.sc.ptr)
  179. #define YGU_getButton(btn) ((*btn).detail.bt.now)
  180. #define YGU_getSwitch(swt) ((*swt).detail.sw.now)
  181. #define YGU_getPullDown(pdm) ((*pdm).detail.pd.now)
  182. #define YGU_getMenu(mnu) ((*mnu).detail.mn.prev)
  183. #define YGU_getDialogue(dlg) ((*dlg).detail.dl.prechg)
  184. #define YGU_nextItem(itm) ((*itm).next)
  185. #define YGU_previousItem(itm) ((*itm).prev)
  186.  
  187. ITEM *YGU_allItemsAction(char *EGB_work,ITEM *top);
  188. ITEM *YGU_addLongitudinalbar
  189.      (char *EGB_work,ITEM *top,int x,int y,int lx,int ly,int argc,int dspn);
  190. ITEM *YGU_addLateralbar
  191.      (char *EGB_work,ITEM *top,int x,int y,int lx,int ly,int argc,int dspn);
  192. ITEM *YGU_addButton(ITEM *top,int x,int y,int lx,int ly);
  193. ITEM *YGU_addButtonSwitch(ITEM *top,int x,int y,int lx,int ly);
  194. ITEM *YGU_addDialogue
  195.      (char *EGB_work,ITEM *top,int x,int y,int lx,int ly,char *(*a),char *sw,
  196.       int fx,int fy,int single);
  197. ITEM *YGU_addPullDownMenu
  198.      (ITEM *top,int x,int y,int lx,int ly,
  199.       char *(*a),int px,int py,int fx,int fy);
  200. ITEM *YGU_addMenu
  201.      (char *EGB_work,ITEM *top,int x,int y,int lx,int ly,
  202.       char *(*a),int fx,int fy);
  203. void YGU_repaintDialogue(char *EGB_work,ITEM *dlg);
  204. void YGU_resetScrollBar(char *EGB_work,ITEM *bar,int argc,int dspn);
  205. void YGU_resetDialogue(char *EGB_work,ITEM *dlg,char *(*arg),char *sw);
  206. void YGU_setDialoguePointer(char *EGB_work,ITEM *dlg,int newptr);
  207. void YGU_setScrollBarPointer(char *EGB_work,ITEM *bar,int newptr);
  208. void YGU_deleteAll(ITEM *itm);
  209. void YGU_deleteItem(ITEM *itm);
  210. void YGU_buttonSwitchOn(char *EGB_work,ITEM *btn);
  211. void YGU_buttonSwitchOff(char *EGB_work,ITEM *btn);
  212. int  YGU_intInput
  213.     (char *EGB_work,char *mes,int mx,int mn,int df,
  214.      int x,int y,int lx,int ly,int fx,int fy);
  215. void YGU_lineInput
  216.    (char *EGB_work,char *lin,int len,int x,int y,int lx,int ly,int fx,int fy);
  217. void YGU_lineInputKanji
  218.    (char *EGB_work,char *lin,int len,int x,int y,int lx,int ly,int fx,int fy);
  219. int YGU_checkDoubleClick();
  220. int YGU_itemSerialNumber(ITEM *top,ITEM *act); /* ITEM *top は 1番 0:該当無 */
  221.  
  222.  
  223. int  YGU_fileSelect
  224.     (char *EGB_work,char *ttl,
  225.      unsigned *drv,char *path,char *fn,
  226.      char *wld,int x,int y,int lx,int ly,int fx,int fy);
  227. int  YGU_paraFileSelect
  228.     (char *EGB_work,char *ttl,
  229.      int maxn,unsigned *drv,char *path,char *(*fn),char *buf,
  230.      char *wld,int x,int y,int lx,int ly,int fx,int fy);
  231. void YGU_menuLine(char *EGB,char *msg,int x,int y,int lx,int ly,int fx,int fy);
  232.  
  233.  
  234.  
  235. /*  Troubles */
  236. /*  スクロールバーが出来ない */
  237. /*    縦横のサイズが極端に正方形に近い場合はYGU_addLongitudinalbar  /
  238.       YGU_addLateralbarはNULLを返す。  */
  239. /*  プルダウンメニューが開かない */
  240. /*    メモリが不足で、プルダウンメニュー表示部に対して十分な画面退避
  241.       バッファが確保できない場合はプルダウンメニューが開かない。 */
  242. /*  FileSelectorが誤動作する/ハングする */
  243. /*    pathには64バイト fnには13バイト以上のスペースが必要。drvとpathと
  244.       fnは呼出し側で初期化しなくてはならない。カレントディレクトリから
  245.       選択を開始する場合は、path[0]=0; としておく。また、fnの初期状態が
  246.    "DUMMY.DAT"の場合は、char fn[13]; strcpy(fn,"DUMMY.DAT");を実行
  247.    しておかなくてはならない。また、カレントドライブから選択を開始
  248.    する場合は、drv=0;としておく。その他の注意としては、lx,lyが、フォ
  249.    ントの大きさに対して、あまりにも小さい時は、画面が崩れる可能性が
  250.    ある。 */
  251.  
  252.